Application Server Functionality

Description

Browser tracking, caching of A5I files, caching of Gzipped output, MIME types, session files, session variables, and trace logging.

This article applies to developers who are migrating applications from Alpha Five V10 or older to a newer release of Alpha Anywhere.

Browser Tracking

The Application Server does not automatically perform browser tracking, set cookies, or create the Session.BrowserId property.

Browser tracking is when a BrowserId cookie containing a unique identifier with a long lifetime is sent as part of every response, and that identifier is made available as Session.BrowserId.

Caching of A5I files

The server now actively monitors all a5_application.a5i files for changes and automatically refreshes the cache as needed. This negates the need to use Server.ClearA5ICache() or restart the server when A5I files are updated.

Caching of Gzipped Output

The server now actively monitors all gzipped output for changes to the underlying source file and automatically refreshes the cache as needed. This negates the need to use Server.ClearGzipCache() or restart the server when static files are updated.

MIME Types

The Application Server resolves MIME types using settings stored in an XML file. This allows the server administrator to add MIME types to extend the server or to override the default types.

The location of the MIME types file may be specified using the Advanced tab of the Application Server Settings. It defaults to a file named MIMETypes.xml in the same folder as the server's configuration file.

If the specified file does not exist, the server will create a new XML MIME types file using internally stored defaults when it is first started. The file will then be used for subsequent starts of the server.

Session Files

Files are now stored in the session using Session.SaveDataAsFile() and retrieved using Session.FormatFileDataURL(). See Upgrading Session File Storage in Legacy apps for complete details.

Session Variables

Session variables can only be strings (type "C"). If you declare a session variable of any other type, it will result in a runtime warning or error. This can break session persistence.

Session Variables cannot be created directly from a request query string or POST body. This negates the need to use "protected" session variables, as all session variables are now effectively "protected". In order to create a session variable, you must execute A5W code to read the request variable and create or set the session variable. A request for a URL such as http://localhost/index.a5w?session.name=John(external link) will not create a session variable session.name as it previously would have. Instead, it will create a request variable which may be accessed as Request.Variables.session.name during the lifetime of that request only.

Trace Logging

The Application Server logs trace output (e.g. trace.writeln() ) to text files on the server. In prior versions, trace methods were not available.

The location of the trace files is specified in the Trace Log Folder setting. One log file will be created in the specified folder for each trace window pane, using the naming Trace_<PaneName>.log (e.g. Trace_user.log).